/**
 * googleのoauthでpicasaへのアクセス権限を得るWebハンドラのパッケージ。<br />
 * <p>client/serverは以下の手順でサービスへのアカウント登録を行う。</p>
 * <ol>
 * <li>{@literal https://.../oauth/}へGETリクエストを投げる。</li>
 * <li>serverがランダムトークンを返す。</li>
 * <li>clientは取得したランダムトークンを適用した{@literal https://.../oauth/?token=xxxxxx}をブラウザで開く。</li>
 * <li>ユーザがブラウザ上でgoogleサービスへのアクセス許可を行う。</li>
 * <li>ユーザが許可を行うと、serverがgoogleからコールバックを受け、アクセストークンとシークレットのペアを受け取る。<br />
 * その際、コールバックURLにランダムトークンを含めておく＆calendarサービスへの許可も貰うため、以下をワンセットで保存する。
 * <ul><li>ランダムトークン</li><li>googleアカウント(galendarサービスから取得する)</li>
 * <li>アクセストークン</li><li>シークレットトークン</li></ul></li>
 * <li>ブラウザが閉じた事を確認（できるの？）したclient側は、{@literal https://.../oauth/complete?token=xxxxx}へGETリクエストを投げる。</li>
 * <li>serverが以下を返すのでclient側で保存する(ユーザにgoogleアカウントを入力させて、つきあわせて確認しても良いかも)。
 * <ul><li>ランダムトークン</li><li>googleアカウント(galendarサービスから取得する)</li>
 * <li>アクセストークン</li><li>シークレットトークン</li></ul></li>
 * </li>
 * </ol>
 * <p>これらの手順が終了するとサービスへのユーザ登録が完了したとみなす。<br />
 * 以降のアクセス時には常に下記の情報をHttpヘッダに格納して通信すること。</p>
 * <ul><li>ランダムトークン（アプリ内のユーザIDとする）</li><li>アクセストークン</li></ul></li>
 * <p>また、client側はserver側の機能を使わなくても、保存してあるアクセストークンとシークレットトークン、
 * アプリ内に固定値として保持する（propertyファイルにでも入れておこう）コンシューマキー、コンシューマシークレットを使うことで
 * Picasaサービスへ直接アクセスすることもできる。</p>
 */
package com.google.code.memoriesalbum.controller.oauth;

